/* --------------------------- (C) COPYRIGHT 2021 Fortiortech ShenZhen -----------------------------
    File Name      : AMP.c
    Author         : Fortiortech  Appliction Team
    Version        : V1.0
    Date           : 2021-04-11
    Description    : This file contains .C file function used for Motor Control.
----------------------------------------------------------------------------------------------------  
                                       All Rights Reserved
------------------------------------------------------------------------------------------------- */
#include <MyProject.h>
void AMP_Init(void)
{
    #if (Shunt_Resistor_Mode == Single_Resistor) 
    {
        /*****AMP 端口模拟功能设置******/
        SetBit(P3_AN , P31);            //AMP0 Pin设置为模拟模式  +
        SetBit(P3_AN , P30);            //AMP0 Pin设置为模拟模式  -
        SetBit(P2_AN , P27);            //AMP0 Pin设置为模拟模式  O

        //000-->Genaral AMP 001-->2X 010-->4X 011-->8X 100-->16X 101-->32X Others-->32X
        /**********AMP0 PGA SET************/
        ClrBit(AMP_CR1 , AMP0_GAIN2);	//0x80
        ClrBit(AMP_CR1 , AMP0_GAIN1);	//0x40
        ClrBit(AMP_CR1 , AMP0_GAIN0);	//0x20

        SetBit(AMP_CR0 , AMP0EN);        //AMP0 Enable
    }
    #elif (Shunt_Resistor_Mode == Double_Resistor)
    {
        SetBit(P1_AN , P16);            //AMP1 Pin设置为模拟模式  +
        SetBit(P1_AN , P17);            //AMP1 Pin设置为模拟模式  -
        SetBit(P2_AN , P20);            //AMP1 Pin设置为模拟模式  O

        SetBit(P2_AN , P21);            //AMP2 Pin设置为模拟模式  +
        SetBit(P2_AN , P22);            //AMP2 Pin设置为模拟模式  -
        SetBit(P2_AN , P23);            //AMP2 Pin设置为模拟模式  O
        ClrBit(P2_OE , P23);            //P23_OE需要强制为0，禁止DA1输出至PAD  
        /*****AMP 端口模拟功能设置******/
        SetBit(P3_AN , P31);            //AMP0 Pin设置为模拟模式  +
        SetBit(P3_AN , P30);            //AMP0 Pin设置为模拟模式  -
        SetBit(P2_AN , P27);            //AMP0 Pin设置为模拟模式  O

        //000-->Genaral AMP 001-->2X 010-->4X 011-->8X 100-->16X 101-->32X Others-->32X
        /**********AMP0 PGA SET************/
//        ClrBit(AMP0_GAIN , AMP0_GAIN2);	//0x80
//        SetBit(AMP0_GAIN , AMP0_GAIN1);	//0x40
//        SetBit(AMP0_GAIN , AMP0_GAIN0);	//0x20

        SetBit(AMP_CR0 , AMP0EN);        //AMP0 Enable
        SetBit(AMP_CR0 , AMP1EN);        //AMP1 Enable
        SetBit(AMP_CR0 , AMP2EN);        //AMP2 Enable
    }
    #elif (Shunt_Resistor_Mode == Three_Resistor)
    {
        SetBit(P3_AN , P31);            //AMP0 Pin设置为模拟模式  +
        SetBit(P3_AN , P30);            //AMP0 Pin设置为模拟模式  -
        SetBit(P2_AN , P27);            //AMP0 Pin设置为模拟模式  O

        SetBit(P1_AN , P16);            //AMP1 Pin设置为模拟模式  +
        SetBit(P1_AN , P17);            //AMP1 Pin设置为模拟模式  -
        SetBit(P2_AN , P20);            //AMP1 Pin设置为模拟模式  O

        SetBit(P2_AN , P21);            //AMP2 Pin设置为模拟模式  +
        SetBit(P2_AN , P22);            //AMP2 Pin设置为模拟模式  -
        SetBit(P2_AN , P23);            //AMP2 Pin设置为模拟模式  O
        ClrBit(P2_OE , P23);            //P23_OE需要强制为0，禁止DA1输出至PAD
        
        SetBit(AMP_CR0 , AMP0EN);        //AMP0 Enable
        SetBit(AMP_CR0 , AMP1EN);        //AMP1 Enable
        SetBit(AMP_CR0 , AMP2EN);        //AMP2 Enable        
    }
    #endif
		#if (PFCEnable == 1)
        SetBit(P1_AN, P13 | P14 | P15);
        ClrBit(P1_OE, P13);
        SetBit(AMP_CR0, AMP3EN);
    #endif    
    
}